#ifndef _PLAYER_
#define _PLAYER

#include "ServerEntity.hpp"
#include "Objects/Objects.hpp"
#include "Graphics/Graphics.hpp"

/** 
* Entity used by players.
*/
class Player:public PlayerEntity, public ServerEntity, public DrawableEntity{
    
public:
	/** 
	* Player's name.
	*/
	std::string name;

	/** 
	* Character's sprite set.
	*/
	SpriteSet* characterSet;

	/** 
	* The direction the character s facing.
	*/
	byte facingDir;

	sf::Color collisionBoxColor;

    Player(Map* m, std::string name, SpriteSet* set, float x, float y, byte dir);

    virtual void draw(sf::RenderTarget& target, sf::RenderStates states) const;
    virtual void move();
    virtual void setMove(byte dir);

    virtual void bind(lua_State* luaState);
    virtual void push(lua_State* luaState);

};

#endif